Rust (Hyper) 版とTypeScript版のPiping Serverの違い
追記:上記のコミットから先の時点でも以下のリストに追記をしている。
転送中のパスでも、それと同じパスで新しい転送を開始できる。
転送中でも同じパス使えるし
転送が開始されればどのパスで接続しているか虱潰しに探されることもない
パスを探されても接続拒否されるように守られているいるからデータが漏れる心配はないが、どういうパスを使うかの癖なども情報と捉えれば、その流出を最小限に抑えるという意味でセキュリティ強化
TypeScriptの方では、転送中のパスは新しい転送では使えなかった。
HTTPサーバーのライブラリHyperでの実装の都合上こうなっているが、安全性に問題がないため、今の所この実装。
TypeScriptの方も、この実装にしても良いかもしれない
複数受信は非対応
そこまで致命的ではない。
頑張れば実装できるかもしれないが、あまり複数受信を使わないため、実装が大変な割に使われないと、そこまで積極的に実装できない。オリジナルを置き換えたくなったら、ちゃんと実装する気がある。
途中でユーザーが接続を切ると、そのパスが使えなくなる。
ユーザー側で対処可能
接続を切った反対側の役割のユーザーがそのパスにPOST/PUTかGETすればもう一度使うことはできる
これはライブラリHyperで接続切れを検出する方法を探しても、見つからないため現在はこのようになっている。
Multipart非対応
0.9.0にてMultipart対応
致命的ではない